//管理用户相关的状态值

//引入 md5
import md5 from 'js-md5';
//引入 cookie
import {
    setCookie,
    getCookie,
    removeCookie
} from '@/utils/support';

//引入后台接口
import { Login } from '@/api/user';

const user = {
    state: {
        name: getCookie("name"), //登录后的用户的中文名   保存在 cookie
        roleid: getCookie("roleid") //1超级管理员 2 普通用户   保存在 cookie
    },
    mutations: {
        //设置 中文名
        SET_NAME: (state, name) => {
            state.name = name;
        },
        //设置角色id
        SET_ROLEID: (state, roleid) => {
            state.roleid = roleid;
        }
    },
    actions: {
        //登录动作 context ={commit,state}
        LoginAC({ commit }, userInfo) {
            //写成promise的形式
            return new Promise((resolve) => {
                console.log(commit);
                const { username, password } = userInfo;
                console.log(username);
                //1.密码 加密, 密码不可以明文传到后台   密码：123456
                /*
                加密：  https 协议
                md5(password).substr(10,10)+0426 加盐
                */
                //console.log(md5(password + md5(password).substr(10, 10) + '0426'));
                userInfo.password = md5(password + md5(password).substr(10, 10) + 2014);
                //调用后台接口
                Login(userInfo).then(res => {
                    console.log(res);
                    if (res.status == 200) {
                        //设置cookie
                        setCookie("token", res["token"], 1);
                        setCookie("name", res["name"], 1);
                        setCookie("username", res["username"], 1);
                        setCookie("roleid", res["roleid"], 1);
                        //设置 store
                        commit("SET_NAME", res["name"]);
                        commit("SET_ROLEID", res["roleid"]);
                        //a. 将成功的数据保存  ，保存到 cookie  和 vuex
                        //b.成功的提示  和 页面跳转
                        resolve(res);
                    }

                })
            })


        },
        //退出操作
        LogoutAC({ commit }) {
            //设置 store
            commit("SET_NAME", "");
            commit("SET_ROLEID", "");
            removeCookie("token");
            removeCookie("name");
            removeCookie("username");
            removeCookie("roleid");
        }

    }
}
export default user;